gnomeos: Building gdm
authorColin Walters <walters@verbum.org>
Sun, 15 Jan 2012 22:06:18 +0000 (17:06 -0500)
committerColin Walters <walters@verbum.org>
Sun, 15 Jan 2012 22:06:18 +0000 (17:06 -0500)
gnomeos/3.4/gdm-disable-documentation.patch [new file with mode: 0644]
gnomeos/3.4/gnome-doc-utils-no-docs.patch [new file with mode: 0644]
gnomeos/3.4/libcanberra-autogen.patch [new file with mode: 0644]
gnomeos/3.4/libcanberra-no-lynx.patch [new file with mode: 0644]
gnomeos/3.4/manifest.json
gnomeos/3.4/pango-querymodules-system.patch [new file with mode: 0644]
gnomeos/3.4/pulseaudio-autogen.patch [new file with mode: 0644]
src/triggers/triggers.d/pango.trigger

diff --git a/gnomeos/3.4/gdm-disable-documentation.patch b/gnomeos/3.4/gdm-disable-documentation.patch
new file mode 100644 (file)
index 0000000..a88efc3
--- /dev/null
@@ -0,0 +1,55 @@
+From d2e7caf3b67bc76d7354a20344505ba22f877de7 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Sun, 15 Jan 2012 16:49:07 -0500
+Subject: [PATCH] build: Add --disable-documentation
+
+Documentation is the source of many cyclical build loops.  Allow
+operating system builders to manually cut these cycles initially
+by disabling documentation for a first pass.
+---
+ Makefile.am  |    8 +++++++-
+ configure.ac |    4 ++++
+ 2 files changed, 11 insertions(+), 1 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index f522f40..3f00a16 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -4,12 +4,18 @@ SUBDIRS =                    \
+       data                    \
+       common                  \
+       daemon                  \
+-      docs                    \
+       gui                     \
+       utils                   \
+       po                      \
+       tests                   \
+       $(NULL)
++DIST_SUBDIRS =
++
++if ENABLE_DOCUMENTATION
++SUBDIRS += docs
++else
++DIST_SUBDIRS += docs
++endif
+ # add these when help gets added back
+ # omf-install
+diff --git a/configure.ac b/configure.ac
+index 30397c5..291627c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -44,6 +44,10 @@ AC_CONFIG_MACRO_DIR([m4])
+ IT_PROG_INTLTOOL([0.40.0])
+ GNOME_DOC_INIT
++AC_ARG_ENABLE([documentation],
++      AS_HELP_STRING([--enable-documentation], [enable man pages and HTML documentation]),
++      [], [enable_documentation=yes])
++AM_CONDITIONAL(ENABLE_DOCUMENTATION, test x$enable_documentation = xyes)
+ GETTEXT_PACKAGE=gdm
+ AC_SUBST(GETTEXT_PACKAGE)
+-- 
+1.7.6.4
+
diff --git a/gnomeos/3.4/gnome-doc-utils-no-docs.patch b/gnomeos/3.4/gnome-doc-utils-no-docs.patch
new file mode 100644 (file)
index 0000000..cb70768
--- /dev/null
@@ -0,0 +1,52 @@
+From 8b4cb9d332b84db970bf446ad9576ad98ba448e5 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Sat, 14 Jan 2012 21:45:18 -0500
+Subject: [PATCH] build: Add --disable-documentation option
+
+This may sound weird for gnome-doc-utils, but basically I need a
+way to bootstrap an operating system without documentation initially,
+because it's the source of big dependency cycles.
+
+This configure option is enough to get the m4 macros installed, and
+then move from there to building GDM without documentation too.
+---
+ configure.in       |    5 +++++
+ xml2po/Makefile.am |    6 +++++-
+ 2 files changed, 10 insertions(+), 1 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 15d97a4..dd56f21 100644
+--- a/configure.in
++++ b/configure.in
+@@ -21,6 +21,11 @@ AC_PROG_LN_S
+ gdu_cv_have_gdu=yes
+ GNOME_DOC_DEFINES
++AC_ARG_ENABLE([documentation],
++      AS_HELP_STRING([--enable-documentation], [enable documentation generated via XSLT]),
++      [], [enable_documentation=yes])
++AM_CONDITIONAL(ENABLE_DOCUMENTATION, test x$enable_documentation = xyes)
++
+ AC_ARG_ENABLE([build-utils],
+       AC_HELP_STRING([--enable-build-utils],
+       [build and install the build utilities [default=yes]]),,
+diff --git a/xml2po/Makefile.am b/xml2po/Makefile.am
+index 2f17f0b..4aff003 100644
+--- a/xml2po/Makefile.am
++++ b/xml2po/Makefile.am
+@@ -3,7 +3,11 @@ SUBDIRS = xml2po examples
+ pkgconfigdir = $(datadir)/pkgconfig
+ pkgconfig_DATA = xml2po.pc
+-man_MANS = xml2po.1
++man_MANS = 
++
++if ENABLE_DOCUMENTATION
++man_MANS += xml2po.1
++endif
+ $(srcdir)/README: README.in
+       sed -e "s/\@VERSION\@/@VERSION@/g" < README.in > README
+-- 
+1.7.6.4
+
diff --git a/gnomeos/3.4/libcanberra-autogen.patch b/gnomeos/3.4/libcanberra-autogen.patch
new file mode 100644 (file)
index 0000000..0612fe7
--- /dev/null
@@ -0,0 +1,25 @@
+From fb255dd0c00baf1666cd0f7bbe36acc4a1185870 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Sun, 15 Jan 2012 16:16:50 -0500
+Subject: [PATCH] autogen: Honor NOCONFIGURE=1
+
+See http://people.gnome.org/~walters/docs/build-api.txt
+---
+ autogen.sh |    4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/autogen.sh b/autogen.sh
+index e784d3a..630cb97 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -22,4 +22,6 @@
+ NOCONFIGURE=1 ./bootstrap.sh
+-exec ./configure  "$@"
++if test -z "$NOCONFIGURE"; then
++    exec ./configure  "$@"
++fi
+-- 
+1.7.6.4
+
diff --git a/gnomeos/3.4/libcanberra-no-lynx.patch b/gnomeos/3.4/libcanberra-no-lynx.patch
new file mode 100644 (file)
index 0000000..a4f8e8a
--- /dev/null
@@ -0,0 +1,61 @@
+From eea817d6dc89b1dfcf144c3a247a62da6be97a1c Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Sun, 15 Jan 2012 16:35:43 -0500
+Subject: [PATCH] build: Fix build with no lynx installed
+
+---
+ Makefile.am     |    8 +++++++-
+ doc/Makefile.am |    3 ++-
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index ffa7265..794fe10 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -16,7 +16,11 @@
+ # License along with libcanberra. If not, see
+ # <http://www.gnu.org/licenses/>.
+-dist_doc_DATA = README
++dist_doc_DATA =
++
++if USE_LYNX
++dist_doc_DATA += README
++endif
+ EXTRA_DIST = \
+       bootstrap.sh \
+@@ -29,7 +33,9 @@ EXTRA_DIST = \
+ SUBDIRS = src gtkdoc doc
+ MAINTAINERCLEANFILES = README
++if USE_LYNX
+ noinst_DATA = README
++endif
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = libcanberra.pc
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index fae9958..cb27f22 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -16,7 +16,7 @@
+ # License along with libcanberra. If not, see
+ # <http://www.gnu.org/licenses/>.
+-noinst_DATA = README.html README
++noinst_DATA = README.html
+ EXTRA_DIST = $(noinst_DATA) style.css README.html.in
+ MAINTAINERCLEANFILES = README.html
+@@ -26,6 +26,7 @@ if USE_LYNX
+ README: README.html
+       $(AM_V_GEN)lynx --dump $^ | sed 's,file://localhost/.*/doc/README.html,README,' > $@
++noinst_DATA += README
+ CLEANFILES += README
+ endif
+-- 
+1.7.6.4
+
index fbe459d3c5273c266af14821368c7ae9cfddbd69..d51e91c16f07d8883135238ac17d1a499cd3edcb 100644 (file)
@@ -10,6 +10,8 @@
                 "fd-dbus": "git:git://anongit.freedesktop.org/git/dbus/",
                 "fd-NM": "git:git://anongit.freedesktop.org/git/NetworkManager/",
                 "fd-mesa": "git:git://anongit.freedesktop.org/git/mesa/",
+                "fd-pulse": "git:git://anongit.freedesktop.org/git/pulseaudio/",
+                "0pointer": "git:git://git.0pointer.de/",
                 "fedora": "git:git://git.fedorahosted.org/",
                 "savannah": "git:git://git.savannah.gnu.org/",
                 "debian": "git:git://anonscm.debian.org/",
                "cgwalters": "git:git://github.com/cgwalters/"},
 
   "components": [
+               {"src": "gnome:gtk-doc-stub",
+                "component": "devel"},
+
+               {"src": "git:git://github.com/atgreen/libffi.git"},
+
+               {"src": "gnome:glib"},
+
                {"src": "savannah:attr",
                 "branch": "v2.4.46",
                 "patches": ["attr-add-autogen.patch",
                {"src": "gnome:ostree",
                 "config-opts": ["--disable-documentation"]},
 
-               {"src": "gnome:gtk-doc-stub",
-                "component": "devel"},
-
                {"src": "gnome:libxml2"},
 
                {"src": "gnome:libxslt"},
 
-               {"src": "git:git://github.com/atgreen/libffi.git"},
-
-               {"src": "gnome:glib"},
-
                {"src": "fd:pixman"},
 
                {"src": "git:git://git.sv.nongnu.org/freetype/freetype2.git",
                {"src": "fd:PolicyKit",
                 "config-opts": ["--disable-man-pages"]},
 
-               {"src": "git:git://git.0pointer.de/libatasmart.git",
+               {"src": "0pointer:libatasmart.git",
                 "patches": ["libatasmart-autogen.patch"]},
 
                {"src": "fd:udisks",
 
                {"src": "fd:upower",
                 "config-opts": ["--disable-man-pages"],
-                "patches": ["upower-no-builddir.patch"]}
+                "patches": ["upower-no-builddir.patch"]},
+
+               {"src": "gnome:gnome-doc-utils",
+                "config-opts": ["--disable-scrollkeeper",
+                                "--disable-documentation"],
+                 "patches": ["gnome-doc-utils-no-docs.patch"]},
+
+               {"src": "gnome:gconf",
+                "config-opts": ["--disable-orbit",
+                                "--disable-gtk",
+                                "--disable-documentation"]},
+
+               {"src": "gnome:pango",
+                "patches": ["pango-querymodules-system.patch"]},
+
+               {"src": "gnome:atk"},
+
+               {"src": "gnome:gdk-pixbuf"},
+
+               {"src": "gnome:gtk+",
+                "name": "gtk2",
+                "branch": "gtk-2-24"},
+
+               {"src": "gnome:gtk+",
+                "name": "gtk3",
+                "branch": "3b6665aad2c895fc8bc308fc47628001bbc0b401"},
+
+               {"src": "fd:accountsservice"},
+
+               {"src": "fd-pulse:pulseaudio",
+                "branch": "v0.9.23",
+                "config-opts": ["--disable-openssl"],
+                "patches": ["pulseaudio-autogen.patch"]},
+
+               {"src": "0pointer:libcanberra",
+                "patches": ["libcanberra-autogen.patch",
+                            "libcanberra-no-lynx.patch"]},
+
+               {"src": "gnome:gdm",
+                "config-opts": ["--disable-documentation"],
+                "patches": ["gdm-disable-documentation.patch"]}
+
        ]
 }
diff --git a/gnomeos/3.4/pango-querymodules-system.patch b/gnomeos/3.4/pango-querymodules-system.patch
new file mode 100644 (file)
index 0000000..7fc8c40
--- /dev/null
@@ -0,0 +1,149 @@
+From 54798de50d8dca0f6834ffb9796fe47c5e04f31e Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Sun, 15 Jan 2012 09:43:59 -0500
+Subject: [PATCH] querymodules: Add --system argument
+
+When run as a system trigger, we really don't want to be consulting
+e.g. /root/.pangorc.  Also, the OSTree build system can run as
+non-root, but we don't in this case want to look at /home/user since
+the user may not even exist in the password database inside the
+chroot.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=667960
+---
+ pango/pango-utils.c  |   67 +++++++++++++++++++++++++++++++++++++++----------
+ pango/querymodules.c |    9 ++++++-
+ 2 files changed, 61 insertions(+), 15 deletions(-)
+
+diff --git a/pango/pango-utils.c b/pango/pango-utils.c
+index 44ec353..8177dab 100644
+--- a/pango/pango-utils.c
++++ b/pango/pango-utils.c
+@@ -532,6 +532,7 @@ pango_scan_int (const char **pos, int *out)
+ }
+ static GHashTable *config_hash = NULL;
++static gboolean did_read_user_config = FALSE;
+ static void
+ read_config_file (const char *filename, gboolean enoent_error)
+@@ -604,23 +605,41 @@ read_config_file (const char *filename, gboolean enoent_error)
+ }
+ static void
+-read_config (void)
++ensure_config_hash (void)
+ {
+   if (!config_hash)
+-    {
+-      char *filename;
+-      const char *home;
+-      const char *envvar;
+-
+-      config_hash = g_hash_table_new_full (g_str_hash, g_str_equal,
+-                                         (GDestroyNotify)g_free,
+-                                         (GDestroyNotify)g_free);
+-      filename = g_build_filename (pango_get_sysconf_subdirectory (),
+-                                 "pangorc",
+-                                 NULL);
+-      read_config_file (filename, FALSE);
+-      g_free (filename);
++    config_hash = g_hash_table_new_full (g_str_hash, g_str_equal,
++                                       (GDestroyNotify)g_free,
++                                       (GDestroyNotify)g_free);
++}
++
++static void
++read_config_system (void)
++{
++  char *filename;
++
++  ensure_config_hash ();
++
++  filename = g_build_filename (pango_get_sysconf_subdirectory (),
++                             "pangorc",
++                             NULL);
++  read_config_file (filename, FALSE);
++  g_free (filename);
++}
++
++static void
++read_config (void)
++{
++  char *filename;
++  const char *home;
++  const char *envvar;
++  read_config_system ();
++
++  if (!did_read_user_config)
++    {
++      did_read_user_config = TRUE;
++  
+       home = g_get_home_dir ();
+       if (home && *home)
+       {
+@@ -636,6 +655,26 @@ read_config (void)
+ }
+ /**
++ * pango_config_key_get_system:
++ * @key: Key to look up, in the form "SECTION/KEY".
++ *
++ * Looks up a key, consulting only the Pango system config database
++ * in $sysconfdir/pango/pangorc.
++ *
++ * Return value: the value, if found, otherwise %NULL. The value is a
++ * newly-allocated string and must be freed with g_free().
++ **/
++char *
++pango_config_key_get_system (const char *key)
++{
++  g_return_val_if_fail (key != NULL, NULL);
++
++  read_config_system ();
++
++  return g_strdup (g_hash_table_lookup (config_hash, key));
++}
++
++/**
+  * pango_config_key_get:
+  * @key: Key to look up, in the form "SECTION/KEY".
+  *
+diff --git a/pango/querymodules.c b/pango/querymodules.c
+index ef2d09a..a1eec70 100644
+--- a/pango/querymodules.c
++++ b/pango/querymodules.c
+@@ -44,6 +44,8 @@
+ #endif
+ #define SOEXT_LEN ((int) strlen (SOEXT))
++static gboolean system_mode;
++
+ static gboolean
+ string_needs_escape (const char *str)
+ {
+@@ -205,6 +207,8 @@ main (int argc, char **argv)
+     {
+       {"version",     0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, &show_version,
+        "Show version numbers",                                             NULL},
++      {"system",      0, 0, G_OPTION_ARG_NONE, &system_mode,
++       "Do not load configuration from home directory", NULL},
+       {NULL}
+     };
+@@ -237,7 +241,10 @@ main (int argc, char **argv)
+       char **dirs;
+       int i;
+-      path = pango_config_key_get ("Pango/ModulesPath");
++      if (system_mode)
++      path = pango_config_key_get_system ("Pango/ModulesPath");
++      else
++      path = pango_config_key_get ("Pango/ModulesPath");
+       if (!path)
+       path = g_build_filename (pango_get_lib_subdirectory (),
+                                MODULE_VERSION,
+-- 
+1.7.6.4
+
diff --git a/gnomeos/3.4/pulseaudio-autogen.patch b/gnomeos/3.4/pulseaudio-autogen.patch
new file mode 100644 (file)
index 0000000..4a9ef1d
--- /dev/null
@@ -0,0 +1,25 @@
+From 2be8c8bd092a0ee0f0354547f250c2ffd1edcae2 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Sun, 15 Jan 2012 15:14:18 -0500
+Subject: [PATCH] autogen.sh: Honor NOCONFIGURE=1
+
+See http://people.gnome.org/~walters/docs/build-api.txt
+---
+ autogen.sh |    4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/autogen.sh b/autogen.sh
+index 4051a22..2fff570 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -20,4 +20,6 @@
+ NOCONFIGURE=1 ./bootstrap.sh
+-exec ./configure  "$@"
++if test -z "$NOCONFIGURE"; then
++    exec ./configure  "$@"
++fi
+-- 
+1.7.6.4
+
index e5e19cee2e8e8d669ca0b6e8ebafe2c409951c59..699354649ca87d1ed37cb78f1616634d38c3b880 100755 (executable)
@@ -23,4 +23,4 @@
 # REMatch: /lib.*/pango/.*/modules/.*\.so
 
 DEST=/etc/pango/pango.modules
-pango-querymodules > ${DEST}.tmp && mv ${DEST}.tmp ${DEST}
+pango-querymodules --system > ${DEST}.tmp && mv ${DEST}.tmp ${DEST}